package com.thrd.basicframework.ui.webview;

import android.graphics.Bitmap;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

/**
 * @author: ${唐杰}
 * @date: 2021/4/6
 */
public class CustomWebViewClient extends WebViewClient {

    //调用外部浏览器打开超链接
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        WebSettings webSettings = view.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBlockNetworkImage(false);
        //判断webview是否加载了，图片资源
        if (!webSettings.getLoadsImagesAutomatically()) {
            //设置wenView加载图片资源
            webSettings.setLoadsImagesAutomatically(true);
        }

        super.onPageFinished(view, url);
        // html加载完成之后，添加监听图片的点击js函数
        addImageClickListner(view);

    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        view.getSettings().setJavaScriptEnabled(true);
        super.onPageStarted(view, url, favicon);
    }


    public  void addImageClickListner(final WebView mWebView) {
//        //模拟网络卡顿
//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//
//            }
//        }, 3000);

        //网页内容加载完成之后，将真实图片的值替换回src
        mWebView.loadUrl("javascript:(function(){" +
                "var objs = document.getElementsByTagName(\"img\"); " +
                "         window.JSTest.log(objs.length);" +
                "for(var i=0;i<objs.length;i++)  " +
                "{"
                + "     if(objs[i].src.indexOf(\"loading_image_default.gif\")<0) {"
                // 第一种 通过点击事件
                +"objs[i].onclick = function(){"
                +"alert(\"这是第一种点击方式\");" +
                " }"


                + "     } else {"
                + "         objs[i].src = objs[i].alt;"
                + "     }" +
                "}" +
                "})()");


        // 这段js函数的功能就是，遍历所有的img几点，并添加onclick函数，函数的功能是在图片点击的时候调用本地java接口并传递url过去
        mWebView.loadUrl("javascript:(function(){" +
                "var objs = document.getElementsByTagName(\"img\"); " +
                "for(var i=0;i<objs.length;i++)  " +
                "{"
                + "    objs[i].onclick=function()  " +
                "    {      alert(\"这是第一种点击方式\"); "
                + "        window.JSTest.openImage(this.src);  " +
                "    }  " +
                "}" +
                "})()");
    }
}
